package com.jiexinyun.utils;

public class CustomizNumUtils {

    public static synchronized String incrementStringNumber(String input) {
        // 处理null或空字符串
        if (input == null || input.trim().isEmpty()) {
            return "0001";
        }

        // 验证输入是否为纯数字
        if (!input.matches("\\d+")) {
            throw new IllegalArgumentException("输入必须为数字字符串");
        }

        // 转换为整数并加1
        long number = Long.parseLong(input);
        number++;

        // 决定输出位数：如果原输入长度不够表示新数字，则自动扩展
        int outputLength = Math.max(input.length(), String.valueOf(number).length());

        // 格式化为字符串，前导补零
        return String.format("%0" + outputLength + "d", number);
    }

    public static void main(String[] args) {
        // 测试用例
        System.out.println(incrementStringNumber(null));     // 0001
        System.out.println(incrementStringNumber(""));      // 0001
        System.out.println(incrementStringNumber("0010"));  // 0002
        System.out.println(incrementStringNumber("9999"));  // 10000
        System.out.println(incrementStringNumber("10000")); // 10001
        System.out.println(incrementStringNumber("99999")); // 10000
    }


}
